SpringBoot

您所在的位置:网站首页 spring boot html放在哪里 SpringBoot

SpringBoot

#SpringBoot| 来源: 网络整理| 查看: 265

SpringBoot面试题 一、Spring Boot提供了哪些核心功能?(高频)1、jar包方式运行2、使用了starter依赖3、自动配置4.辅助功能(内嵌tomcat,辅助功能) 二、你如何理解Spring Boot中的starter?三、Spring Boot常用的starter有哪些?(高频)四.Spring Boot的配置文件有哪几种格式?(高频)四.一 springboot有哪几种读取配置的⽅式?五.如何自定义Spring Boot应用程序的端口号?六.Spring Boot如何定义多套不同环境配置?七.Spring Boot有哪几种读取配置的方式?(高频)八.Spring Boot的核心注解是哪个?它主要由哪几个注解组成的?@SpringBootApplication@SpringBootConfiguration@EnableAutoConfiguration打开自动配置的功能,也可以关闭某个自动配置的选项。原理:总结: @ComponentScan 九.运行Spring Boot有哪几种方式?十.Spring Boot打成的jar和普通的jar有什么区别?十一.Spring Boot中如何实现定时任务?十二.怎么禁用某些自动配置特性?十三.SpringBoot常用注解1.读取yml文件|properties2.condition3.auto

一、Spring Boot提供了哪些核心功能?(高频) 1、jar包方式运行

通过引入spring-boot-maven-plugin插件可以将springboot项目打包成一个可以直接运行的jar包,运行方式和常规jar包一样 java -jar xxx.jar,启动后可以直接运行内嵌的web容器,根据具体引入的依赖来确定到底该启动哪种web容器。

2、使用了starter依赖

使用starter来封装依赖,简化项目引入相关依赖的复杂度

3、自动配置

springboot将spring4中的 @Condition(条件注入)注解发扬光大, 根据特定的条件来创建相关的bean(如classpath下存在某个或者是某些类时自动创建某些spring bean),自动完成相关框架的自动配置。

4.辅助功能(内嵌tomcat,辅助功能) 二、你如何理解Spring Boot中的starter?

starter可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成 Spring及其他技术,而不需要到处找示例代码和依赖包。

如你想使用spring data redis访问Redis,只要加入spring-boot-starter-data-redis 启动器依赖就能使用了。starter包含了许多项目中需要用到的依赖,它们能快速持续的运行,都是一系列得到支持的管理传递性依赖。

三、Spring Boot常用的starter有哪些?(高频)

1、spring-boot-starter-web (嵌入tomcat和web开发需要servlet与jsp支持)

2、spring-boot-starter-data-elasticsearch (es支持)

3、spring-boot-starter-data-redis (redis支持)

4、spring-boot-starter-amqp(消息队列支持)

5、spring-boot-starter-data-mongodb (mongodb的支持)

6、mybatis-spring-boot-starter(mybatis的支持)

7、mybatis-plus-boot-starter(mybatis plus的支持)

四.Spring Boot的配置文件有哪几种格式?(高频)

Spring Boot支持两种格式的配置文件:

1、application.properties

2、application.yml

在实际的项目开发一般的都是使用nacos配置中心管理项目中的配置信息, 常见的配置中心:Spring Cloud Config、Nacos。

四.一 springboot有哪几种读取配置的⽅式?

@Value @ConfigurationProperties Environment

五.如何自定义Spring Boot应用程序的端口号?

方式一:在application.properties或者application.yml文件中添加server.port配置项指定端口

方式二:在启动spring boot项目的时候通过-Dserver.port参数指定项目的端口号

方式三:通过WebServerFactoryCustomizer(配置类)设置端口号,如下所示

六.Spring Boot如何定义多套不同环境配置?

提供多套配置文件,如: applcation.properties application-dev.properties application-test.properties application-prod.properties 然后在applcation.properties文件中指定当前的环境spring.profiles.active=test,这时候读取的就是application-test.properties文件。

七.Spring Boot有哪几种读取配置的方式?(高频)

1、@Value

2、实现Environment接口

3、@ConfigurationProperties(在加类上)

八.Spring Boot的核心注解是哪个?它主要由哪几个注解组成的? @SpringBootApplication

就是 @Configuration 注解,实现配置文件的功能。

@SpringBootConfiguration

就是了 @Configuration 注解,实现配置文件的功能。

@EnableAutoConfiguration 打开自动配置的功能,也可以关闭某个自动配置的选项。 如何关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。 原理:

在这里插入图片描述 该注解通过@Import注解导入AutoConfigurationImportSelector,这个类实现了一个导入器接口ImportSelector。在该接口中存在一个方法

selectImports,如下所示: 在这里插入图片描述 该方法的返回值是一个数组,数组中存储的就是要被导入到spring容器中的类的全类名。在AutoConfigurationImportSelector类中重写了这个方法,

该方法内部就是读取了项目的classpath路径下META-INF/spring.factories文件中的所配置的类的全类名。

在这些配置类中所定义的Bean会根据条件注解所指定的条件来决定是否需要将其导入到Spring容器中。

总结:

在项目启动的时候,spring boot框架会自动读取META-INF/spring.factories配置文件中org.springframework.boot.autoconfigure.EnableAutoConfiguration所配置的配置类,然后将其中所定义的bean根据条件注解所指定的条件来决定是否需要将其导入到Spring容器中。

@ComponentScan

Spring组件扫描。

九.运行Spring Boot有哪几种方式?

方式一:直接通过java -jar xxx.jar的方式运行

方式二:将xxx.jar制作成Docker镜像,然后借助于Docker容器进行运行,并且可以使用docker-compose对多个容器进行统一编排

十.Spring Boot打成的jar和普通的jar有什么区别?

1、Spring Boot 项目最终打包成的jar是可执行jar 这种jar可以直接通过 java -jar xxx.jar 命令来运行,这种jar不可以作为普通的 jar 被其他项目依赖,即使依赖了也无法使用其中的类。 2、Spring Boot 的jar无法被其他项目依赖,主要还是他和普通jar的结构不同。 普通的jar包,解压后直接就是包名,包里就是我们的代码,而Spring Boot打包成的可执行jar解压后,在 \BOOT-INF\classes目录下才是我们的代码,因此无法被直接引用。

十一.Spring Boot中如何实现定时任务?

在Spring Boot中可以使用两种定时任务框架:

1、Spring Task 2、Quartz(石英?) 一般在项目中使用Spring Task就可以了,因为Spring Task是Spring框架提供的可以和Spring Boot进行无缝集成。具体的使用方式如下所示:

1、在启动类上使用**@EnableScheduling**注解开启定时任务支持

2、在指定的方法上使用**@Scheduled**注解来指定定时任务的执行规则, 如下所示: 从右到左: 年(周)月日时分秒 在这里插入图片描述

十二.怎么禁用某些自动配置特性?

如果我们想禁用某些自动配置特性,可以使用 @SpringBootApplication注解的exclude属性来指明。例如,下面的代码段是使 DataSourceAutoConfiguration无效: 在这里插入图片描述

十三.SpringBoot常用注解 1.读取yml文件|properties

@EnableConfigurationProperties 将properties文件中的key/value信息和javabean中的属性绑定

2.condition

@ConditionalOnClass:当classpath下有指定的类条件才成立 @ConditionalOnMissBean:当IOC容器中没有指定的bean,常常作为bean的候补; @ConditionalOnProperties:当在配置文件中配置了相关的信息,条件才成立

3.auto

@SpringBootApplication @Configuration 加了@Configuration注解的类就是工厂Bean 加了@Bean注解的方法就是工厂方法,实例工厂方法,静态工厂方法 工厂方法如果重载,bean的名称一样,只会创建参数最多的那个bean @Configuration类将来会产生代理对象,保证@Bean方法相互调用的时候保证单例性 Bean工厂的PostProcessor配置静态方法 配置类依赖注入采用局部变量 @Import 引入单个bean 引入配置类,将配置类中所有的对象,放入IOC容器 引入实现了ImportSelector接口的类;只会将接口的返回结果放在IOC容器; 引入实现了ImportBeanDefinitionRegistrar接口的类;只会将接口的返回结果放在IOC容器; 引入实现了DeferredImportSelector接口的类;只会将接口的返回结果放在IOC容器; @EnableAutoConfiguration



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3